package beans;

import java.util.*;
import java.sql.*;
import dbUtil.*;
import utils.*;
import iteradores.IteradorPermiso;

/**
 * Clase que representa el bean de la tabla Permiso de la BD
 * @author José Giménez, Gustavo Planás, Esteban Benítez
 */
public class Permiso extends PgAbm implements Abm 
{
    /**
     * Constructor de la clase Permiso
     */
    public Permiso() 
    {
        // Seteamos el nombre de la tabla a consultar
        super.setTableName("permiso");
        
        // Se establecen los campos de la tabla
        ArrayList array_campos = new ArrayList();
        array_campos.add("idpermiso"); 
        array_campos.add("descripcion");      
        array_campos.add("operacion");      
        array_campos.add("usuario_ing");
        array_campos.add("fecha_ing");
        
        // Se establece la clave
        ArrayList array_claves = new ArrayList(); 
        array_claves.add("idpermiso");
        
        // Inicializamos el hash que contendra los valores de la tabla
        super.initMapping();
        
        // Se establecen estos valores en el padre
        super.setCampos(array_campos);
        super.setClaves(array_claves); 
        
        //Setea qué secuenciador utiliza la tabla
        super.setSequence("idpermiso", "idpermiso_idpermiso_seq");
    }
    
    /**
     * Setea el ID del permiso 
     * @param valor Nuevo ID del permiso
     */
    public void setIdPermiso(String valor) 
    {
        setMapValue("idpermiso", valor);  
    }
    
    /**
     * Setea la descripción del permiso
     * @param valor Nueva descripción del permiso
     */
    public void setDescripcion(String valor) 
    {
        setMapValue("descripcion", valor);  
    }
    
    /**
     * Setea la operación que efectúa el permiso
     * @param valor Nueva operación 
     */
    public void setOperacion(String valor) 
    {
        setMapValue("operacion", valor);  
    }
    
    /**
     * Setea el usuario ingresante
     * @param valor Nuevo usuario ingresante
     */
    public void setUsuario_Ing(String valor) 
    {
        setMapValue("usuario_ing", valor);  
    }
    
    /**
     * Setea la fecha de ingreso
     * @param valor Nueva fecha de ingreso
     */
    public void setFecha_Ing(String valor) 
    {
        setMapValue("fecha_ing", valor);  
    }
    
    /**
     * Obtiene el ID del permiso
     * @return ID del permiso
     */
    public String getIdPermiso()
    {
        return (String) getMapValue("idpermiso");
    }     
    
    /**
     * Obtiene la descripción del permiso
     * @return Descripción del permiso
     */
    public String getDescripcion()
    {
        return (String) getMapValue("descripcion");
    }
    
    /**
     * Obtiene la operación del permiso
     * @return Operación del permiso
     */
    public String getOperacion()
    {
        return (String) getMapValue("operacion");
    }
       
    /**
     * Obtiene el usuario ingresante
     * @return Usuario ingresante
     */
    public String getUsuario_Ing()
    {
        return (String) getMapValue("usuario_ing");
    }
    
    /**
     * Obtiene la fecha de ingreso
     * @return Fecha de ingreso
     */
    public String getFecha_Ing()
    {
        return (String) getMapValue("fecha_ing");
    }
    
    /**
     * Obtiene el iterador de la clase Permiso
     * @return Iterador de la clase Permiso
     * @throws java.lang.Exception
     */
    public Iterador getIterator() throws Exception
    {
        ResultSet rs_datos = super.getResultSet();
        IteradorPermiso iter = new IteradorPermiso(rs_datos);    
        return iter;  
    }
}